#ifndef __DOUBLELINKEDLIATWITHHEAD_H__
#define __DOUBLELINKEDLIATWITHHEAD_H__


typedef int ElemType;// 数据节点内部元素的类型
typedef struct Node //数据节点的类型
{
    ElemType data;//数据域
    struct Node*pre;//指向上一个
    struct Node*next;//指向下一个
}Node;
struct Head//头节点的类型
{
    int num;
    struct Node*first;
    struct Node*last;
};

extern struct Head*Create_Empty_DoubleLinkedListWithHead();
extern struct Head*Create_Input_DoubleLinkedListWithHead();
extern void Print_DoubleLinkedListWithHead(struct Head*h);
extern void Insert_node_y(struct Head*h, ElemType x, ElemType y);
extern void Delete_all_x(struct Head*h, ElemType x);
#endif